1. The Field of the Invention
The present invention generally relates to managing a computer user's identity information. More particularly, the present invention provides systems, methods, and computer program products for assisting a user in managing the user's shared persona on a request-by-request basis. In addition, the present invention provides the user with the capabilities to log, and later determine, entities for which the user's identity information is shared.
2. Background and Related Art
Computerized systems provide many advantages towards peoples' ability to perform tasks. Indeed, the computer system's ability to process information has transformed the way we live and work. Computing systems now take a wide variety of forms including desktop computers, laptop computers, tablet PCs, personal digital assistance (PDAs), and the like. Even household devices (such as refrigerators, ovens, sewing machines, security systems, and the like) have varying levels of processing capability and thus may be considered computing systems. Processing capabilities continue to be incorporated into devices that traditionally did not have such processing power. Accordingly, the diversity trend of computing systems will likely increase.
Along with computing systems, the Internet has revolutionized the way people communicate and has ushered in a new era in human history often termed the “information age.” In essence, the Internet includes a large constellation of networked computers that are spread out over much of the world. Sophisticated computers, software, and networking technology have made communication over the Internet fairly straight forward from the view point of the end user.
With the advent of the Internet, electronic messaging systems (e.g., email, messaging boards, instant messaging (IM), chart rooms, secured transactions, online shopping, etc.) have become an increasingly popular way to communicate information. For example, businesses increasingly rely on electronic messages to share ideas, transmit documents, schedule meetings, and perform a multitude of other everyday tasks. Further, individuals utilize messaging systems to communicate and interact with family, friends, business associates, acquaintances, Internet sites, or any other desired individual or organization within one's interactive community. Accordingly, such electronic messaging systems have expanded the notion of a community far beyond any particular geographical location.
Within such interactive communities, often times it is desirable to exchange user identity or persona information. For example, individuals and businesses may desire to exchange contact information for people, groups, organizations, businesses, households, or any other identifiable entity with which they interact. Such information may include, for example, a user's name, alias, telephone numbers, email addresses, instant messaging (IM) addresses, home address, web addresses, IP addresses for alternate deliver schemes, public keys, tokens, current projects, schedule availability, etc. Further, individuals or businesses may wish to have other user identity information distributed or published amid the community in which they interact such as hobbies, occupational specialties, affiliations, services provided, merchandise sold, etc.
Typically, in order for a user to utilize such identity or persona information, the user must manually input such information into, e.g., a contact management system. The user must then be able to understand, manage, and control the flow of persona information to other entities, i.e., people, organizations, etc. Today, however, there is no easy or consistent user experience around managing or sharing one's identity information. For example, each application and website has its own unique process for registering, storing, and using identity information. Accordingly, identity information is typically sprinkled throughout the distributed system, which makes the identity information difficult to find, update, or even know that the information exists. Further, even if the user knows where to find the identity information there is currently no easy, fine grained way to manage sharing the persona on a request-by-request basis.
For instance, a user may be able to create different files or cards for various types of identity information; for example, one for personal contact information, one for business contact information, one for legal identity information (e.g., credit cards, social security number, driver license, etc.), one for digital identities (e.g., tokens, public keys, certificates, etc.), and so on. Accordingly, a user may then select from the various types of identity stored when sharing such persona with other entities. If, however, the user does not wish to share a portion of identity information within a file, the user must either modify the identity card or create a new file for sharing.
While this process of modifying and/or creating a multitude of different identity types may work well for users with limited identity information, or for those who do not desire controlling their persona on a request-by-request basis, for other users there are still several shortcomings to this process. For example, if the user creates different cards or files for every possible combination of types of identity information, the number of permutations becomes extremely numerous requiring high memory and other valuable computing resources. Further, the user must take the time to create the different number of possible permutations and remember the contents of each identity file created for sharing the information with others; thereby diminishing the user experience. Accordingly, there exists a need for assisting a user in modifying identity information on a request-by-request basis in a user friendly way.
Another deficiency of current identity management systems is the difficulty or inability to determine those entities with whom a user has shared his/her persona. Often, a user desires to update or otherwise revoke identity information for various entities. Currently, however, there is no automated way to determine what identity information has been shared and with whom. As such, a user must rely on their own memory for determining what types of identities and with whom their persona has been shared with. As one can see, this reliance on the user's own memory makes it difficult (if not impossible) to know all of those entities and what type of identity information the user has shared.
In fact, the user might not even know that identity information has been shared. For example, websites that do not support a database backend might place cookies on one's machine (or elsewhere) in order to share identity information with the website each time it is visited by the user. This information is often controlled by the website and typically cannot be modified by the user—other than to delete the cookies. Further, the sharing of this information is typically transparent to the user such that the user may not even know the identity contents or that the identity information has been shared. Accordingly, there exists a need for being able to identify the entities for which specific types or items of identity have been shared in order to have better control and management over one's persona. A similar issue exists when the website uses a backend to store the identity information. In this case, the website places an identification key to the database in the cookie or asks the user to log into the website in order to access information stored in the web server database. The user, however, might not be aware of the information that s/he has shared with the site in the past.
Still another drawback of current identity management systems is that they do not provide the user with the ability to edit and store sensitive identity information in a secure environment. For example, each type and/or item of identity information is typically stored in an unencrypted format on the user's computer or in other databases. Accordingly, if a user leaves their computer on in an unlocked state, or if other rogue computers or software unintentionally installed by the user have access to the user's files and/or database, an unauthorized user may access, edit, or otherwise use the identity information in a harmful way. Accordingly, there also exists a need to be able to ensure that sensitive identity information is securely stored on the user's machine and/or in other databases.